package analisis.matrizContingencia;

import java.util.List;

/**
 * @file Recall.java
 * @author Juan Humanes Ferrer
 * @date 14-Marzo-2014
 *
 */
public final class Recall implements IMedida {

    private double recall;//valor en porcentaje

    public Recall() {
        setRecall(0.0);//valor en porcentaje
    }

    /**
     * Método que retorna el recall
     *
     * @return recall
     */
    public double getRecall() {
        return recall;
    }

    /**
     * Métodod que modifica el valor de recall
     *
     * @param recall
     */
    public void setRecall(double recall) {
        this.recall = recall;
    }

    /**
     * Método que calcula el recall
     *
     * @param tp
     * @param tn
     * @param fp
     * @param fn
     * @param valoresMedidas
     */
    @Override
    public void calculaMedida(double tp, double tn, double fp, double fn,List<IMedida> valoresMedidas) {
        double result = Double.POSITIVE_INFINITY;
        if (tp != 0.0 && fn != 0.0) {
            result = tp / (tp + fn);
            result *= 100.0;
        }

        setRecall(result);
    }

    @Override
    public Double verValor(){
        return getRecall();
    }
}
